import Vue from 'vue'
import Vuex from 'vuex'
import http from '../http'
import { getMasterBrandList } from '../api/brand'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    // 品牌数据
    BrandList: {},
    // 品牌首字母
    initBrand: []
  },
  mutations: {
    changeBrand(state, action) {
      let BrandList = {}
      // 首字母添加到数组
      action.res.forEach(item => {
        // 读取首字母
        let initial = item.Spelling.slice(0, 1)

        // 判断当前对象下是否有该属性 ({ 'A': [] })
        if (BrandList[initial]) {
          BrandList[initial].push(item)
        } else {
          BrandList[initial] = [item]
        }
        state.initBrand.push(initial)
      })
      state.BrandList = JSON.parse(JSON.stringify(BrandList))
      // Array.from  把类数组 转换为真实的数组
      // 去重
      state.initBrand = Array.from(new Set(state.initBrand))
    }
  },
  // 发布异步请求
  actions: {
    // 初始化品牌数据
    async initBrandFn({ commit }) {
      const res = await getMasterBrandList({ id: 10 })
      commit('changeBrand', { res })

      // getMasterBrandList().then(res => {
      //   commit('changeBrand', { res })
      // })

      // http.get("/v2-car-getMasterBrandList.html").then(res => {
      //   commit('changeBrand', { res })
      // })
    }
  }
})
